1. The Field of the Invention
This invention relates generally to displaying realistic images on a graphical display. More specifically, the present invention relates to the rendering of realistic large-area shadows cast by displayed objects relative to the objects and a perceived light source to thereby provide greater realism or image enhancement to an image shown on a graphical display, where the shadows change over time.
2. The State of the Art
The state of the art in rendering realistic images of three dimensional simulated environments in real-time is currently a difficult and expensive task because of the large computational resources required. Nevertheless, three dimensional scene realism is often the goal of computer generated imagery for many reasons. Consequently, over the years, various techniques have been developed to improve overall image quality and realism. These techniques include such things as texturing, lighting, anti-aliasing, and visibility to thereby add to the realism. One of the more challenging aspects of scene rendering is that of shadows. Shadows add greatly to the believability of an image. Objects in scenes without shadows often appear to float in the air. Shadows help the observer to see the proper relationships between objects and terrain in the scene.
A variety of algorithms have been developed for rendering shadows, but they are all very costly in terms of computer resources. These techniques are often used when creating computer animated movies or TV commercials. However, they generally involve the rendering of each individual frame, then capturing the frames for playback at faster speeds. In other words, they are generally not affordable for applications requiring real-time rendering, such as simulation systems used for training. However, the advantages of computer simulated training have made the ability to render realistic three dimensional simulated environments of increasing importance because of the practical and cost effective applications of such technology.
There are many training scenarios that use computer generated imagery to enhance the training experience. For some applications, the addition of shadows would greatly improve the training effectiveness. The required accuracy of the shadows is dependent on the training application. For example, training astronauts to dock with an object in space requires extremely accurate and dynamic shadows. The astronaut uses the shadows to judge relative distance and position of a spacecraft and the object that is being approached. In contrast, shadows may be far less significant to a user when training an individual to drive a tank. In this particular application, the primary value of the shadows may be just the increased realism and the fact that objects sometimes appear to be floating above the terrain when no shadow is present. While these flaws are almost always distracting, they are usually not critical or masking life threatening situations. However, the importance of a realistic training experience should not be minimized.
Other applications absolutely require shadows that mimic real-world conditions. Furthermore, these shadows must be capable of changing over time as the simulated sun or moon moves in a simulated sky. For example, the military often requires pilots to fly a night mission while wearing night vision goggles. Under certain conditions, regions not directly lit by moonlight are difficult to see through the goggles. For example, buildings or small hills may be completely hidden from the pilot's view if they lie in the shadow of a nearby mountain. These obstacles represent a life threatening situation for the pilot. Further complicating the situation is the fact that the shadows may be entirely different when the pilot flies the same corridor a few hours later when returning from a mission. If the training device cannot render realistic shadows, the pilot will receive negative training and perhaps a false sense of security if those same simulated objects in shadow are visible in the simulation because of a failure to accurately render a real world environment or conditions that may alter someone's perception of that environment, such as the night vision goggles.
It is this last class of shadow, a time based rendering of the shadow, which is the primary focus of the improvements of the invention over the state of the art. For example, it would be an improvement over the state of the art to provide a relatively low-cost solution to time varying shadows. It would also be an improvement to provide a multitude of levels of resolution, allowing some aspects of time based shadow rendering to be easily applied by any computer image generator. Of course, at the highest level of resolution, special rendering hardware would be capable of implementing all aspects of the improvements.
A vast number of state of the art shadow rendering algorithms are currently in use for non-realtime applications. Most of these techniques are currently not tractable for realtime rendering that is required in realtime simulations. While some success has been achieved with multi-pass shadow rendering techniques, they incur severe performance penalties and scenario constraints. Furthermore, they also require special hardware which is only available on high-end graphics systems, thereby limiting application of the improvements.
Most training applications that require shadows currently use database modeling techniques. For example, a dark, semi-transparent polygon can be attached beneath a moving vehicle. As the vehicle moves around, the shadow polygon follows along, making the underlying ground appear darker. These shadows are not highly realistic, but they often provide sufficient realism for purposes of the training application. This approach also only works for relatively small objects within the scene. These approaches are not useful for creating large shadow regions such as those from nearby mountains or hillsides.
Therefore, it would be an advantage over the state of the art techniques for rendering shadows to render large shadows that are time dependent and will adjust position relative to dynamically moving sunlight or moonlight. Furthermore, the level of detail or resolution should be adjustable to the capabilities of the graphics rendering hardware that is available in a system.